package com.wyz.saas.api.factory

import androidx.annotation.StringRes

/**
 * 数据源接口定义
 */
interface DataSource {
    /**
     * 同时包括了成功与失败的回调接口
     **/
     interface Callback<T> : SucceedCallback<T>, FailedCallback

    /**
     * 只关注成功的接口
     **/
     interface SucceedCallback<T> {
        // 数据加载成功, 网络请求成功
        fun onDataLoaded(data: T)
    }

     interface FailedCallback {
        // 数据加载失败, 网络请求失败
        fun onDataNotAvailable(@StringRes str: Int , throws: Throwable? = null)
    }

    /**
     * 销毁操作
     */
    fun dispose()
}